﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WeddingEventManagement_API
{
    public interface ILocationManager
    {
        List<Location> GetLocations(string filter = null);
        Location GetLocation(int id);
        List<Location> GetRecentlyViewedLocations(int num);
        List<Location> GetMostViewedLocations(int num);
        List<LocationOccurrence> GetMostUsedLocations(int num);

        void UpdateLocation(Location location, Guid? updateUserID = null);
        void DeleteLocation(int locationID);
        int CreateLocation(string name, string streetAddress, string city, string postalCode, Province province,
            string lat, string lng, string type, int capacity,
            string contactName = null, string contactPhone = null,  string contactEmail = null, string notes = null,
            Guid? creatorUserID = null);

        List<String> GetUniqueLocationTypes();
        List<String> GetUniqueLocationVenueTypes();

        void AddPhoto(LocationPhoto locationPhoto);
    }
}
